Systems and methods for providing automated natural language dialogue with customers

ABSTRACT

A system includes one or more memory devices storing instructions, and one or more processors configured to execute the instructions to perform steps of providing automated natural dialogue with a customer. The system may generate one or more events and commands temporarily stored in queues to be processed by one or more of a dialogue management device, an API server, and an NLP device. The dialogue management device may create adaptive responses to customer communications using a customer context, a rules-based platform, and a trained machine learning model.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority under 35U.S.C. § 120 to, U.S. patent application Ser. No. 17/245,109, filed Apr.30, 2021, which is a continuation of U.S. patent application Ser. No.16/807,192, now U.S. Pat. No. 11,004,440, filed Mar. 3, 2020, which is acontinuation of U.S. patent application Ser. No. 16/427,965, now U.S.Pat. No. 10,614,793, filed May 31, 2019, which is a continuation of U.S.patent application Ser. No. 15/665,960, filed Aug. 1, 2017, now U.S.Pat. No. 10,332,505, which claims the benefit of U.S. ProvisionalApplication No. 62/469,193, filed Mar. 9, 2017, the entire contents andsubstance of which are hereby fully incorporated herein by reference.

FIELD

The present disclosure relates to systems and methods for providingautomated natural language dialogue, and more particularly providingsystems and methods to modify and adapt responses to customers based onthe development of the customer context for a particular customer.

BACKGROUND

Automated systems for interacting with customers, such as interactivevoice response (IVR) systems or programs that generate automaticwritten, auditory, or video responses via web and mobile deviceapplication channels are useful ways to provide customers with requestedinformation and perform routine account actions (e.g., checking anaccount balance, submitting a payment, closing an account, etc.) in anexpedited, extended hours fashion without the need to have a largeworkforce of customer service agents. While helpful, existing systemstend to provide an impersonal and robotic user experience limited byscripted questions and responses with a finite number of permutationsthat are used for every customer. Additionally, these systems aretypically unable to personalize the user experience based on acustomer's history with the company or organization affiliated with thesystem.

Accordingly, there is a need for improved systems and methods to provideautomated natural language dialogue with intelligent, adaptive responsesthat are personalized to a customer's particular history. Embodiments ofthe present disclosure are directed to this and other considerations.

BRIEF SUMMARY

Disclosed embodiments provide systems and methods for providingautomated natural language dialogue.

Consistent with the disclosed embodiments, the system may include one ormore memory devices storing instructions, and one or more processorsconfigured to execute the instructions to perform steps of a method toprovide automated natural language dialogue. The system may execute theinstructions to receive a first event to be placed in an event queuethat is monitored by a dialogue management device that includes arules-based platform, a trained machine learning module, and a customercontext. In response to detecting the first event in the event queue,the dialogue management device may receive the first event from theevent queue. The dialogue management device may then process the firstevent and generate a first command to be placed in the command queuebased on one or more of the rules-based platform, the trained machinelearning model, and the customer context. The command queue includes oneor more commands for execution by one or more of a natural languageprocessing device, an API server, and a communication interface and uponexecution of the first command by one of these entities, a second eventmay be generated to be placed in the event queue. The dialoguemanagement device may then detect and receive the second event from theevent queue. Upon processing the second event, the dialogue managementdevice may then generate a response dialogue message and a secondcommand to be placed in the command queue based on one or more of therules-based platform, the trained machine learning model, and thecustomer context. The second command may provide an instruction to thecommunication interface to transmit the response dialogue message.

Consistent with the disclosed embodiments, methods for providingautomated natural language dialogue are also disclosed.

Further features of the disclosed design, and the advantages offeredthereby are explained in greater detail hereinafter with reference tospecific embodiments illustrated in the accompanying drawings, whereinlike elements are indicated be like reference designators.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made to the accompanying drawings, which are notnecessarily drawn to scale, and which are incorporated into andconstitute a portion of this disclosure, illustrate variousimplementations and aspects of the disclosed technology and, togetherwith the description, serve to explain the principles of the disclosedtechnology. In the drawings:

FIG. 1 is a diagram of an exemplary system that may be used to automatednatural language dialogue;

FIG. 2 is a component diagram of an exemplary dialogue managementdevice;

FIG. 3 is a system functionality diagram of an exemplary system forproviding automated natural language dialogue;

FIG. 4 is a flowchart of an exemplary system for providing automatednatural language dialogue; and

FIG. 5 is a flowchart of another exemplary system for providingautomated natural language dialogue.

DETAILED DESCRIPTION

Some implementations of the disclosed technology will be described morefully with reference to the accompanying drawings. This disclosedtechnology may, however, be embodied in many different forms and shouldnot be construed as limited to the implementations set forth herein. Thecomponents described hereinafter as making up various elements of thedisclosed technology are intended to be illustrative and notrestrictive. Many suitable components that would perform the same orsimilar functions as components described herein are intended to beembraced within the scope of the disclosed electronic devices andmethods. Such other components not described herein may include, but arenot limited to, for example, components developed after development ofthe disclosed technology.

It is also to be understood that the mention of one or more method stepsdoes not preclude the presence of additional method steps or interveningmethod steps between those steps expressly identified. Similarly, it isalso to be understood that the mention of one or more components in adevice or system does not preclude the presence of additional componentsor intervening components between those components expressly identified.

The disclosed embodiments are directed to systems and methods forproviding automated natural language dialogue. The system may includeone or more memory devices storing instructions, and one or moreprocessors configured to execute the instructions to perform steps of amethod. Specifically, in some embodiments, the system may provideautomated natural language responses to customer messages acrossmultiple different communication channels. To accomplish this, thesystem may execute the instructions to generate a first event to beplaced in an event queue in response to receiving an incoming customerdialogue message, where the event queue is monitored by a dialoguemanagement device that includes a rules-based platform, a trainedmachine learning module, and a customer context. In response todetecting the first event in the event queue, the dialogue managementdevice may receive the first event from the event queue. The dialoguemanagement device may then process the first event and generate a firstcommand to be placed in the command queue based on one or more of therules-based platform, the trained machine learning model, and thecustomer context, where the first command represents a command to thenatural language processing device to determine the meaning of theincoming customer dialogue message. The command queue may include one ormore commands for execution by one or more of a natural languageprocessing device, an API server, and a communication interface and uponexecution of the first command by the natural language processingdevice, a second event may be generated to be placed in the event queue,where the second event may represent a determined meaning of theincoming customer dialogue message. The dialogue management device maythen detect and receive the second event from the event queue. Uponprocessing the second event, the dialogue management device may thengenerate a second command to be placed in the command queue, by thedialog management device and based on one or more of the rules-basedplatform, the trained machine learning model, and the customer context,where the second command may be a command to the API server to retrievecustomer data. Upon execution of the second command by the API server, athird event may be generated to be placed in the event queue, where thethird event may represent retrieved customer data. The dialoguemanagement device may then detect and receive the third event from theevent queue. Upon processing the third event, the dialogue managementdevice may then generate a response dialogue message and a third commandto be placed in the command queue based on one or more of therules-based platform, the trained machine learning model, and thecustomer context, wherein the third command may provide an instructionto the communication interface to transmit the response dialoguemessage.

In another embodiment, a system for providing automated natural languagedialogue may include one or more memory devices storing instructions,and one or more processors configured to execute the instructions toperform steps of a method. Upon executing the instructions, the systemmay receive a first event to be placed in an event queue that ismonitored by a dialogue management device that includes a rules-basedplatform, a trained machine learning module, and a customer context. Inresponse to detecting the first event in the event queue, the dialoguemanagement device may receive the first event from the event queue. Thedialogue management device may then process the first event and generatea first command to be placed in the command queue based on one or moreof the rules-based platform, the trained machine learning model, and thecustomer context. The command queue includes one or more commands forexecution by one or more of a natural language processing device, an APIserver, and a communication interface and upon execution of the firstcommand by one of these entities, a second event may be generated to beplaced in the event queue. The dialogue management device may thendetect and receive the second event from the event queue. Uponprocessing the second event, the dialogue management device may thengenerate a response dialogue message and a second command to be placedin the command queue based on one or more of the rules-based platform,the trained machine learning model, and the customer context. The secondcommand may provide an instruction to the communication interface totransmit the response dialogue message.

In another embodiment, a method for providing automated natural languagedialogue with a customer may include receiving a first event to beplaced in an event queue that is monitored by a dialogue managementdevice that includes a rules-based platform, a trained machine learningmodule, and a customer context. The method may further includereceiving, at the dialogue management device, the first event from theevent queue in response to detecting the first event in the event queue.The method may further include generating a first command to be placedin a command queue by the dialog management device and based on one ormore of the rules-based platform, the trained machine learning model,and the customer context and in response to processing the first event,where the command queue may comprise one or more commands for executionby one or more of a natural language processing device, an API server,and a communication interface. The method may further include generatinga second event to be placed in the event queue in response to executionof the first command by one of a natural language processing device orthe API server. The method may further include receiving the secondevent from the event queue at the dialogue management system in responseto detecting the second event in the event queue. Finally, the methodmay further include generating a response dialogue message and a secondcommand to be placed in the command queue by the dialogue managementdevice in response to processing the second event and based on one ormore of the rules-based platform, the trained machine learning model,and the customer context, where the second command may provide aninstruction to the communication interface to transmit the responsedialogue message.

Although the above embodiments are described with respect to systems, itis contemplated that embodiments with identical or substantially similarfeatures may alternatively be implemented as methods and/ornon-transitory computer-readable media.

Reference will now be made in detail to exemplary embodiments of thedisclosed technology, examples of which are illustrated in theaccompanying drawings and disclosed herein. Wherever convenient, thesame references numbers will be used throughout the drawings to refer tothe same or like parts.

FIG. 1 is a diagram of an exemplary system 100 that may be configured toperform one or more processes that can provide automated naturallanguage dialogue that may adaptively respond to customer messages basedon an ever-evolving customer context associated with a particularcustomer. The components and arrangements shown in FIG. 1 are notintended to limit the disclosed embodiments as the components used toimplement the disclosed processes and features may vary. As shown,system 100 may include a user device 102, a network 106, and anorganization 108 including, for example, a web server 110, a call centerserver 112, a transaction server 114, a local network 116, a dialoguemanagement device 120, a database 118, an API server 122, and a naturallanguage processing device 124 (which may be referred to herein as anNLP device).

In some embodiments, a customer may operate user device 102. User device102 can include one or more of a mobile device, smart phone, generalpurpose computer, tablet computer, laptop computer, telephone, PSTNlandline, smart wearable device, voice command device, other mobilecomputing device, or any other device capable of communicating withnetwork 106 and ultimately communicating with one or more components oforganization 108. In some embodiments, a user device may include orincorporate electronic communication devices for hearing or visionimpaired users. User device 102 may belong to or be provided by acustomer or may be borrowed, rented, or shared. Customers may includeindividuals such as, for example, subscribers, clients, prospectiveclients, or customers of an entity associated with organization 108,such as individuals who have obtained, will obtain, or may obtain aproduct, service, or consultation from an entity associated withorganization 108. According to some embodiments, user device 102 mayinclude an environmental sensor for obtaining audio or visual data, suchas a microphone and/or digital camera, a geographic location sensor fordetermining the location of the device, an input/output device such as atransceiver for sending and receiving data, a display for displayingdigital images, one or more processors including a sentiment depictionprocessor, and a memory in communication with the one or moreprocessors.

Network 106 may be of any suitable type, including individualconnections via the internet such as cellular or WiFi networks. In someembodiments, network 106 may connect terminals, services, and mobiledevices using direct connections such as radio-frequency identification(RFID), near-field communication (NFC), Bluetooth™, low-energyBluetooth™ (BLE), WiFi™, ZigBee™, ambient backscatter communications(ABC) protocols, USB, WAN, or LAN. Because the information transmittedmay be personal or confidential, security concerns may dictate one ormore of these types of connections be encrypted or otherwise secured. Insome embodiments, however, the information being transmitted may be lesspersonal, and therefore the network connections may be selected forconvenience over security.

Network 106 may comprise any type of computer networking arrangementused to exchange data. For example, network 106 may be the Internet, aprivate data network, virtual private network using a public network,and/or other suitable connection(s) that enables components in systemenvironment 100 to send and receive information between the componentsof system 100. Network 106 may also include a public switched telephonenetwork (“PSTN”) and/or a wireless network.

Third party server 126 may comprise a computer system associated with anentity other than the entity associated with organization 108 andcustomers that perform one or more functions associated with theindividual and organization 108. For example, third party server 126 cancomprise an automated teller machine (ATM) system that allows thecustomer to withdraw money from an account managed via organization 108.As another example, third party server 126 may comprise a serverassociated with a store where the customer intends to make a purchaseusing funds held in an account that an entity associated withorganization 108 manages. As another example, third party server 126 maycomprise a computer system associated with a product repair service thatsubmits a warranty claim for a product that customer purchased from theentity associated with organization 108.

Organization 108 may be associated with and optionally controlled by anentity such as a business, corporation, individual, partnership, or anyother entity that provides one or more of goods, services, andconsultations to individuals such as customers.

Organization 108 may include one or more servers and computer systemsfor performing one or more functions associated with products and/orservices that organization 108 provides. Such servers and computersystems may include, for example, web server 110, call center server112, and/or transaction server 114, as well as any other computersystems necessary to accomplish tasks associated with organization 108or the needs of customers (which may be customers of the entityassociated with organization 108). Web server 110 may include a computersystem configured to generate and provide one or more websitesaccessible to customers, as well as any other individuals involved inorganization 108's normal operations. Web server 110 may include acomputer system configured to receive communications from a user device102 via for example, a mobile application, a chat program, an instantmessaging program, a voice-to-text program, an SMS message, email, orany other type or format of written or electronic communication. Webserver 110 may have one or more processors 132 and one or more webserver databases 134, which may be any suitable repository of websitedata. Information stored in web server 110 may be accessed (e.g.,retrieved, updated, and added to) via local network 116 and/or network106 by one or more devices (e.g., the dialogue management device 120) ofsystem 100. In some embodiments, processor 132 may be used to implementan automated natural language dialogue system that may interact with acustomer via different types of communication channels such as awebsite, mobile application, instant messaging application, SMS message,email, or any other type of electronic communication. When receiving anincoming message from, for example, a user device 102 of a customer, webserver 110 may be configured to determine the type of communicationchannel user device 102 used to generate the incoming message.

Call center server 112 may include a computer system configured toreceive, process, and route telephone calls and other electroniccommunications between a customer operating user device 102 and thedialogue management device 120. Call center server 112 may have one ormore processors 142 and one or more call center databases 144, which maybe any suitable repository of call center data. Information stored in acall center server 112 may be accessed (e.g., retrieved, updated, andadded to) via local network 116 and/or network 106 by one or moredevices (e.g., the dialogue management device 120) of system 100. Insome embodiments, call center server processor 142 may be used toimplement an interactive voice response (IVR) system that interacts withthe customer over the phone.

Transaction server 114 may include a computer system configured toprocess one or more transactions involving an account associated withcustomers, or a request received from customers. In some embodiments,transactions can include, for example, a product/service purchase,product/service return, financial transfer, financial deposit, financialwithdrawal, financial credit, financial debit, dispute request, warrantycoverage request, and any other type of transaction associated with theproducts and/or services that an entity associated with organization 108provides to individuals such as customers. Transaction server 110 mayhave one or more processors 152 and one or more transaction serverdatabases 154, which may be any suitable repository of transaction data.Information stored in transaction server 110 may be accessed (e.g.,retrieved, updated, and added to) via local network 116 and/or network106 by one or more devices (e.g., the dialogue management device 120) ofsystem 100.

In some embodiments, transaction server 114 tracks and stores event dataregarding interactions between a third party, such as third-party server126, with organization 108, on behalf of the individual. For example,transaction server 114 may track third-party interactions such aspurchase requests, refund requests, warranty claims, account withdrawalsand deposits, and any other type of interaction that third party server126 may conduct with organization 108 on behalf of an individual such asa customer.

Local network 116 may comprise any type of computer networkingarrangement used to exchange data in a localized area, such as WiFi,Bluetooth™ Ethernet, and other suitable network connections that enablecomponents of organization 108 to interact with one another and toconnect to network 106 for interacting with components in systemenvironment 100. In some embodiments, local network 116 may comprise aninterface for communicating with or linking to network 106. In otherembodiments, components of organization 208 may communicate via network106, without a separate local network 116.

Dialogue management device 120 may comprise one or more computer systemsconfigured to compile data from a plurality of sources, such as webserver 110, call center server 112, and transaction server 114,correlate compiled data, analyze the compiled data, arrange the compileddata, generate derived data based on the compiled data, and storing thecompiled and derived in a database such as database 118. According tosome embodiments, database 118 may be a database associated withorganization 108 and/or its related entity that stores a variety ofinformation relating to customers, transactions, and businessoperations. Database 118 may also serve as a back-up storage device andmay contain data and information that is also stored on, for example,databases 134, 144, 154, 164, 174 and 280. Database 118 may be accessedby dialogue management device 120 and may be used to store records ofevery interaction, communication, and/or transaction a particularcustomer has had with organization 108 and/or its related entity in thepast to enable the creation of an ever-evolving customer context thatmay enable dialogue management device 120 to provide customized andadaptive dialogue when interacting with the customer.

API server 122 may include a computer system configured to execute oneor more application program interfaces (APIs) that provide variousfunctionalities related to the operations of organization 108. In someembodiments, API server 122 may include API adapters that enable the APIserver 122 to interface with and utilize enterprise APIs maintained byorganization 108 and/or an associated entity that may be housed on othersystems or devices. In some embodiments, APIs can provide functions thatinclude, for example, retrieving customer account information, modifyingcustomer account information, executing a transaction related to anaccount, scheduling a payment, authenticating a customer, updating acustomer account to opt-in or opt-out of notifications, and any othersuch function related to management of customer profiles and accounts.API server 112 may have one or more processors 162 and one or more APIdatabases 164, which may be any suitable repository of API data.Information stored in API server 122 may be accessed (e.g., retrieved,updated, and added to) via local network 116 and/or network 106 by oneor more devices (e.g., the dialogue management device 120) of system100. In some embodiments, API processor 162 may be used to implement oneor more APIs that can access, modify, and retrieve customer accountinformation.

In certain embodiments, real-time APIs consistent with certain disclosedembodiments may use Representational State Transfer (REST) stylearchitecture, and in this scenario, the real-time API may be called aRESTful API.

In certain embodiments, a real-time API may include a set of HypertextTransfer Protocol (HTTP) request messages and a definition of thestructure of response messages. In certain aspects, the API may allow asoftware application, which is written against the API and installed ona client (such as, for example, transaction server 114) to exchange datawith a server that implements the API (such as, for example, API server122), in a request-response pattern. In certain embodiments, therequest-response pattern defined by the API may be configured in asynchronous fashion, and require that the response be provided inreal-time. In some embodiments, a response message from the server tothe client through the API consistent with the disclosed embodiments maybe in the format including, for example, Extensible Markup Language(XML), JavaScript Object Notation (JSON), and/or the like.

In some embodiments, the API design may also designate specific requestmethods for a client to access the server. For example, the client maysend GET and POST requests with parameters URL-encoded (GET) in thequery string or form-encoded (POST) in the body (e.g., a formsubmission). Additionally, or alternatively, the client may send GET andPOST requests with JSON serialized parameters in the body. Preferably,the requests with JSON serialized parameters use “application/j son”content-type. In another aspect, an API design may also require theserver implementing the API return messages in JSON format in responseto the request calls from the client.

Natural language processing device (NLP device) 124 may include acomputer system configured to receive and process incoming dialoguemessages and determine a meaning of the incoming dialogue message. Forexample, NLP device 124 may be configured to receive and execute acommand containing an incoming dialogue message where the commandinstructs the NLP device 124 to determine the meaning of the incomingdialogue message. NLP device 124 may be configured to continuously orintermittently listen for and receive commands from a command queue todetermine if there are any new commands directed to NLP device 124. Uponreceiving and processing an incoming dialogue message NLP device 124 mayoutput the meaning of an incoming dialogue message in a format thatother devices can process. For example, NLP device 124 may receive anincoming dialogue message stating “Hello, I would like to know myaccount balance please,” and may determine that this statementrepresents a request for an account balance. NLP device 124 may beconfigured to output an event representing the meaning of the incomingdialogue message to an event queue for processing by another device. Insome embodiments, NLP device 124 may be configured to generate a naturallanguage phrase in response to receiving a command. Accordingly, in someembodiments, NLP device 124 may be configured to output an event thatcontains data representing natural language dialogue.

NLP device 124 may have one or more processors 172 and one or more NLPdatabases 174, which may be any suitable repository of NLP data.Information stored in NLP device 124 may be accessed (e.g., retrieved,updated, and added to) via local network 116 and/or network 106 by oneor more devices (e.g., the dialogue management device 120) of system100. In some embodiments, NLP processor 172 may be used to implement anNLP system that can determine the meaning behind a string of text andconvert it to a form that can be understood by other devices.

Although the preceding description describes various functions of a webserver 110, call center server 112, transaction server 114, dialoguemanagement device 120, database 118, an API server 122, and a naturallanguage processing (NLP) device 124, in some embodiments, some or allof these functions may be carried out by a single computing device.

For ease of discussion, embodiments may be described in connection withthe generation of automated natural language dialogue in response to anelectronic text communication such as an SMS message, chat programmessage, or an email. It is to be understood, however, that disclosedembodiments are not limited to dialogue in response to writtenelectronic messages and may be used in many other contexts, such as, forexample, generating automated natural language dialogue in response toan oral communication such as a phone call. Further, steps or processesdisclosed herein are not limited to being performed in the orderdescribed but may be performed in any order, and some steps may beomitted, consistent with the disclosed embodiments.

The features and other aspects and principles of the disclosedembodiments may be implemented in various environments. Suchenvironments and related applications may be specifically constructedfor performing the various processes and operations of the disclosedembodiments or they may include a general-purpose computer or computingplatform selectively activated or reconfigured by program code toprovide the necessary functionality. Further, the processes disclosedherein may be implemented by a suitable combination of hardware,software, and/or firmware. For example, the disclosed embodiments mayimplement general purpose machines configured to execute softwareprograms that perform processes consistent with the disclosedembodiments. Alternatively, the disclosed embodiments may implement aspecialized apparatus or system configured to execute software programsthat perform processes consistent with the disclosed embodiments.Furthermore, although some disclosed embodiments may be implemented bygeneral purpose machines as computer processing instructions, all or aportion of the functionality of the disclosed embodiments may beimplemented instead in dedicated electronics hardware.

The disclosed embodiments also relate to tangible and non-transitorycomputer readable media that include program instructions or programcode that, when executed by one or more processors, perform one or morecomputer-implemented operations. The program instructions or programcode may include specially designed and constructed instructions orcode, and/or instructions and code well-known and available to thosehaving ordinary skill in the computer software arts. For example, thedisclosed embodiments may execute high level and/or low-level softwareinstructions, such as machine code (e.g., such as that produced by acompiler) and/or high-level code that can be executed by a processorusing an interpreter

An exemplary embodiment of dialogue management device 120 is shown inmore detail in FIG. 2 . According to some embodiments, user device 102,web server 110, call center server 112, the transaction server 114, theAPI server 122, NLP device 124, and third-party server 126 may have asimilar structure and components that are similar to those describedwith respect to dialogue management device 120. As shown, dialoguemanagement device 120 may include a processor 210, an input/output(“I/O”) device 220, a memory 230 containing an operating system (“OS”)240 and a program 250. For example, the dialogue management device 120may be a single server or may be configured as a distributed computersystem including multiple servers or computers that interoperate toperform one or more of the processes and functionalities associated withthe disclosed embodiments. In some embodiments, the dialogue managementdevice 120 may further include a peripheral interface, a transceiver, amobile network interface in communication with the processor 210, a busconfigured to facilitate communication between the various components ofthe dialogue management device 120, and a power source configured topower one or more components of the dialogue management device 120.

A peripheral interface may include the hardware, firmware and/orsoftware that enables communication with various peripheral devices,such as media drives (e.g., magnetic disk, solid state, or optical diskdrives), other processing devices, or any other input source used inconnection with the instant techniques. In some embodiments, aperipheral interface may include a serial port, a parallel port, ageneral purpose input and output (GPIO) port, a game port, a universalserial bus (USB), a micro-USB port, a high definition multimedia (HDMI)port, a video port, an audio port, a Bluetooth™ port, a near-fieldcommunication (NFC) port, another like communication interface, or anycombination thereof.

In some embodiments, a transceiver may be configured to communicate withcompatible devices and ID tags when they are within a predeterminedrange. A transceiver may be compatible with one or more of:radio-frequency identification (RFID), near-field communication (NFC),Bluetooth™, low-energy Bluetooth™ (BLE), WiFi™, ZigBee™, ambientbackscatter communications (ABC) protocols or similar technologies.

A mobile network interface may provide access to a cellular network, theInternet, or another wide-area or local area network. In someembodiments, a mobile network interface may include hardware, firmware,and/or software that allows the processor(s) 210 to communicate withother devices via wired or wireless networks, whether local or widearea, private or public, as known in the art. A power source may beconfigured to provide an appropriate alternating current (AC) or directcurrent (DC) to power components.

Processor 210 may include one or more of a microprocessor,microcontroller, digital signal processor, co-processor or the like orcombinations thereof capable of executing stored instructions andoperating upon stored data. Memory 230 may include, in someimplementations, one or more suitable types of memory (e.g. such asvolatile or non-volatile memory, random access memory (RAM), read-onlymemory (ROM), programmable read-only memory (PROM), erasableprogrammable read-only memory (EPROM), electrically erasableprogrammable read-only memory (EEPROM), magnetic disks, optical disks,floppy disks, hard disks, removable cartridges, flash memory, aredundant array of independent disks (RAID), and the like), for storingfiles including an operating system, application programs (including,for example, a web browser application, a widget or gadget engine, andor other applications, as necessary), executable instructions and data.In one embodiment, the processing techniques described herein areimplemented as a combination of executable instructions and data withinthe memory 230.

Processor 210 may be one or more known processing devices, such as, butnot limited to, a microprocessor from the Pentium™ family manufacturedby Intel™ or the Turion™ family manufactured by AMD™. Processor 210 mayconstitute a single core or multiple core processor that executesparallel processes simultaneously. For example, processor 210 may be asingle core processor that is configured with virtual processingtechnologies. In certain embodiments, processor 210 may use logicalprocessors to simultaneously execute and control multiple processes.Processor 210 may implement virtual machine technologies, or othersimilar known technologies to provide the ability to execute, control,run, manipulate, store, etc. multiple software processes, applications,programs, etc. One of ordinary skill in the art would understand thatother types of processor arrangements could be implemented that providefor the capabilities disclosed herein.

Dialogue management device 120 may include one or more storage devicesconfigured to store information used by processor 210 (or othercomponents) to perform certain functions related to the disclosedembodiments. In one example dialogue management device 120 may includememory 230 that includes instructions to enable processor 210 to executeone or more applications, such as server applications, networkcommunication processes, and any other type of application or softwareknown to be available on computer systems. Alternatively, theinstructions, application programs, etc. may be stored in externalstorage or available from a memory over a network. The one or morestorage devices may be a volatile or non-volatile, magnetic,semiconductor, tape, optical, removable, non-removable, or another typeof storage device or tangible computer-readable medium.

In one embodiment, dialogue management device 120 may include memory 230that includes instructions that, when executed by processor 210, performone or more processes consistent with the functionalities disclosedherein. Methods, systems, and articles of manufacture consistent withdisclosed embodiments are not limited to separate programs or computersconfigured to perform dedicated tasks. For example, dialogue managementdevice 120 may include memory 230 that may include one or more programs250 to perform one or more functions of the disclosed embodiments. Forexample, in some embodiments, dialogue management device 120 may includea rules-based platform (RBP) 290 for generating zero or more commands inresponse to processing an event, in accordance with a set of predefinedrules. In some embodiments, dialogue management device 120 may include atrained machine learning model (MLM) 295 for generating zero or morecommands in response to processing an event, in accordance with a modelthat may be continuously or intermittently updated. Moreover, processor210 may execute one or more programs 250 located remotely from system100. For example, system 100 may access one or more remote programs 250(such as rules-based platform 290 or trained machine learning model295), that, when executed, perform functions related to disclosedembodiments.

Memory 230 may include one or more memory devices that store data andinstructions used to perform one or more features of the disclosedembodiments. Memory 230 may also include any combination of one or moredatabases controlled by memory controller devices (e.g., server(s),etc.) or software, such as document management systems, Microsoft™ SQLdatabases, SharePoint™ databases, Oracle™ databases, Sybase™ databases,or other relational or non-relational databases. Memory 230 may includesoftware components that, when executed by processor 210, perform one ormore processes consistent with the disclosed embodiments. In someembodiments, memory 230 may include a customer information database 280for storing related data to enable dialogue management device 120 toperform one or more of the processes and functionalities associated withthe disclosed embodiments. Customer information database 280 may includestored data relating to a customer profile and customer accounts, suchas for example, customer identification information (e.g., name, age,sex, birthday, address, VIP status, key customer status, preferences,preferred language, vehicle(s) owned, greeting name, channel, talkingpoints (e.g., favorite sports team), etc.), bank accounts, mortgage loanaccounts, car loan accounts, other such accounts, account numbers,authorized users associated with one or more accounts, account balances,account payment history, and other such typical account information.Customer information database may further include stored data relatingto previous interactions between the organization 108 (or its relatedentity) and a customer. For example, customer information database 280may store customer interaction data that includes records of previouscustomer service interactions with a customer via a website, SMS, a chatprogram, a mobile application, an IVR system, or notations taken afterspeaking with a customer service agent. Customer information database280 may also include information about business transactions betweenorganization 108 (or its related entity) and a customer that may beobtained from, for example, transaction server 114. Customer informationdatabase 280 may also include customer feedback data such as anindication of whether an automated interaction with a customer wassuccessful, online surveys filled out by a customer, surveys answered bya customer following previous interactions to the company, digitalfeedback provided through websites or mobile application associated withthe organization 108 or its related entity (e.g., selecting a smileyface or thumbs up to indicate approval), reviews written by a customer,complaint forms filled out by a customer, information obtained fromverbal interactions with customer (e.g., information derived from atranscript of a customer service call with customer that is generatedusing, for example, voice recognition techniques) or any other types ofcommunications from a customer to organization 108 or its relatedentity. According to some embodiments, the functions provided by acustomer information database may also be provided by a database that isexternal to the dialogue management device 120, such as database 118.

Memory 230 may also include an event queue 260 for temporarily storingqueued events and a command queue 270 for temporarily storing queuedcommands. Processor 210 may receive events from event queue 260 and inresponse to processing the event using the rules-based platform 290and/or the trained machine learning model 295, generate zero or morecommands to be output to the command queue 270. According to someembodiments, dialogue management device 120 may place commands in thecommand queue 270 in the order they are generated. Each command may bedesignated to be executed by one or more devices, such as, for example,web server 110, call center server 112, the transaction server 114, theAPI server 122, or NLP device 124. Each such device (such as, forexample, the API server 122 or NLP device 124) may continuously orintermittently monitor the command queue 270 to detect commands that aredesignated to be executed by the monitoring device and may accesspertinent commands. The event queue 260 may receive events from otherdevices, such as, for example, user device 102, web server 110, callcenter server 112, the transaction server 114, the API server 122, andNLP device 124. According to some embodiments, events may be placed inthe event queue 260 in a first-in-first-out (FIFO) order, such thatevents may then processed by the dialogue management device 120 in theorder they are received or generated.

Dialogue management device 120 may also be communicatively connected toone or more memory devices (e.g., databases) locally or through anetwork. The remote memory devices may be configured to storeinformation and may be accessed and/or managed by dialogue managementdevice 120. By way of example, the remote memory devices may be documentmanagement systems, Microsoft™ SQL database, SharePoint™ databases,Oracle™ databases, Sybase™ databases, or other relational ornon-relational databases. Systems and methods consistent with disclosedembodiments, however, are not limited to separate databases or even tothe use of a database.

Dialogue management device 120 may also include one or more I/O devices220 that may comprise one or more interfaces for receiving signals orinput from devices and providing signals or output to one or moredevices that allow data to be received and/or transmitted by thedialogue management device 120. For example, dialogue management device120 may include interface components, which may provide interfaces toone or more input devices, such as one or more keyboards, mouse devices,touch screens, track pads, trackballs, scroll wheels, digital cameras,microphones, sensors, and the like, that enable dialogue managementdevice 120 to receive data from one or more users (such as, for example,via user device 102).

In exemplary embodiments of the disclosed technology, dialoguemanagement device 120 may include any number of hardware and/or softwareapplications that are executed to facilitate any of the operations. Theone or more I/O interfaces may be utilized to receive or collect dataand/or user instructions from a wide variety of input devices. Receiveddata may be processed by one or more computer processors as desired invarious implementations of the disclosed technology and/or stored in oneor more memory devices.

While dialogue management device 120 has been described as one form forimplementing the techniques described herein, those having ordinaryskill in the art will appreciate that other, functionally equivalenttechniques may be employed. For example, as known in the art, some orall of the functionality implemented via executable instructions mayalso be implemented using firmware and/or hardware devices such asapplication specific integrated circuits (ASICs), programmable logicarrays, state machines, etc. Furthermore, other implementations of thedialogue management device 120 may include a greater or lesser number ofcomponents than those illustrated.

FIG. 3 shows an exemplary system functionality diagram 300 for a systemfor providing automated natural language dialogue, and the functionalityshown in diagram 300 may be executed by system 100. FIG. 4 shows aflowchart of a method 400 for providing automated natural languagedialogue that in some embodiments, may correspond to the systemfunctionality diagram 300 shown in FIG. 3 . Method 400 may be performedby dialogue management device 120 using processor 210 to execute memory230. In some embodiments, steps of method 400 may be delegated to otherelements in system 100, such as user device 102, web server 110, callcenter server 112, the transaction server 114, the API server 122, ornatural language processing device 124. Following method 400, the systemmay generate a response dialogue message that may be transmitted fordisplay at, for example, user device 102.

As shown in FIGS. 3 and 4 , at blocks 302 and 410, the system 100 maygenerate a first event to be placed in the event queue 260 in responseto receiving a customer dialogue message. A customer dialogue messagemay be sent via, for example, user device 102. A customer dialoguemessage may be sent using various communication mediums, such as forexample, SMS, a voice-to-text device, a chat application, an instantmessaging application, a mobile application, an IVR system, or any othersuch medium that may be sufficient to send and receive electroniccommunications. In some embodiments, the incoming dialogue message maybe received by a device of organization 108, such as web server 110,call center server 112, the API server 112 or dialogue management device120. An event may be generated by, for example, a RESTful APIinterfacing with the receiving device. After the event is created, itmay be placed in the event queue 260. An event queue 260 may beconfigured to temporarily store a plurality of events. According to someembodiments, events are placed in the event queue in afirst-in-first-out (FIFO) manner, such that the events will be executedin the order that they were received. In some embodiments, the eventqueue 260 and/or the command queue 270 may be part of the dialoguemanagement device 120. In some embodiments, both the event queue 260 andthe command queue 270 may be present on a device or component other thandialogue management device 120. For example, in some embodiments, eventqueue 260 and command queue 270 may be maintained on a cloud server thatis accessible by the dialogue management device 120, the API server 122,NLP device 124, and communication interface 301. According to someembodiments, an event may represent different types of information suchas, for example, text received from a customer, customer accountinformation, or a request to perform some account-related action. Forexample, an event might represent a user dialogue message that has beensent to system 100 via SMS that read “Hello, can you please tell me myaccount balance?” According to some embodiments, an event may havecertain metadata associated with it that is sufficient to allow thesystem to determine the identity of a customer associated with the eventand/or a communication medium from which the event originated.

According to some embodiments, the dialogue management device 120 maycontinuously or intermittently monitor the event queue 260. At blocks304 and 420, in response to detecting an event (e.g., the first event)in the event queue, the event may be received at the dialogue managementdevice 120 from the event queue 260. In some embodiments, the dialoguemanagement device 120 may include a rules-based platform, a trainedmachine learning model, and a customer context. According to someembodiments, the customer context may be derived from customerinformation associated with a particular customer that is stored in adatabase such as, for example, database 118 or database 280. In someembodiments, the customer information may include one or more of accounttypes, account statuses, transaction history, conversation history,people models, an estimate of customer sentiment, customer goals, andcustomer social media information. The customer context may allow system100 to adapt and tailor its responses to a particular customer based onthe customer context. According to some embodiments, the customercontext may be updated each time the dialogue management device 120receives a new event from the event queue 260. For example, in someembodiments, the customer context may update by the dialogue managementdevice 120 receiving updated customer information from, for example,database 118.

At blocks 306 and 430, the dialogue management device 120 may, inresponse to processing the first event, generate a first command to beplaced in a command queue 270. According to some embodiments, thedialogue management device 120 may generate a command based on theprocessed event, the customer context, and using one or more of arules-based platform 290 and a trained machine learning model 295. Forexample, in some use cases, a command may be generated using therules-based platform 290, whereas in other use cases a command may begenerated using the trained machine learning model 295, and further usecases may be handled by both working in concert. In some embodiments,the trained machine learning model 295 may be used as a way of enhancingthe performance of the rules-based platform 290 by, for example,determining which rules have priority over other rules and what rulesshould be applied in a given context. According to some embodiments, thecommands generated by the dialogue management device 120 in response toa particular event may change as the customer context is updated overtime. Further, changes to the rules in the rules-based platform 290 orfurther training of the machine learning model 295 may also result indifferent commands being generated in response to the same event.According to some embodiments, the trained machine learning model 295may be trained by updating a natural language processing device database174 with communications from customers that have been labeled using, forexample, a web user interface. The data in the NLP database 174 mayundergo supervised training in a neural network model using a neuralnetwork training algorithm while the model is offline before beingdeployed in the system 100. According to some embodiments, an NLP modelof the system 100 may utilize deep learning models such as aconvolutional neural network (CNN) that transforms a word into a wordvector and long short-term memory (LSTM) that transforms a sequence ofword vectors into intent. The NLP model may also be trained to recognizenamed entities in addition to intents. For example, a named entity mayinclude persons, places, organizations, account types, and producttypes. According to some embodiments, when the dialogue managementdevice 120 generates a command, such as a first command, it maydetermine an entity that will execute the command, such as, for example,the API server 122, the NLP device 124, a communication interface 301,or some other device or component, such that only the determined type ofentity may pull the command from the command queue 270. For example, inthe embodiment shown in FIG. 3 , the dialogue management device 120 maydetermine that the first command is to be executed by the NLP device 124in order to determine the meaning of the incoming customer dialoguemessage. According to some embodiments, at the time the dialoguemanagement device 120 creates a new command, the dialogue managementdevice may also update the customer information database 280 (oralternatively, external database 118) with information about a previousor concurrent transaction or customer interaction.

At blocks 308, 310, and 440 the NLP device 124 may receive the firstcommand from the command queue 270, execute the command, and generate asecond event to be placed in the event queue 260. According to someembodiments, the NLP device 124 may continuously or intermittentlymonitor the command queue 270 to detect new commands and upon detectinga new command, may receive the command from the command queue 270. Uponreceiving a command, the NLP device 124 may perform various functionsdepending on the nature of the command. For example, in some cases, NLPdevice 124 may determine the meaning of an incoming dialogue message inresponse to executing the command. According to some embodiments, NLPdevice 124 may determine the meaning of an incoming dialogue message byutilizing one or more of the following artificial intelligencetechniques: intent classification, named entity recognition, sentimentanalysis, relation extraction, semantic role labeling, questionanalysis, rule extraction, and discovery, and story understanding.Intent classification may include mapping text, audio, video, or othermedia into an intent chosen from a set of intents, which represent whata customer is stating, requesting, commanding, asking, or promising, infor example an incoming customer dialogue message. Intentclassifications may include, for example, a request for an accountbalance, a request to activate a credit/debit card, an indication ofsatisfaction, a request to transfer funds, or any other intent acustomer may have in communicating a message. Named entity recognitionmay involve identifying named entities such as persons, places,organizations, account types, and product types in text, audio, video,or other media. Sentiment analysis may involve mapping text, audio,video, or other media into an emotion chosen from a set of emotions. Forexample, a set of emotions may include positive, negative, anger,anticipation, disgust, distrust, fear, happiness, joy, sadness,surprise, and/or trust. Relation extraction may involve identifyingrelations between one or more named entities in text, audio, video, orother media. A relation may be, for example, a “customer of” relationthat indicates that a person is a customer of an organization. Semanticrole labeling may involve identifying predicates along with roles thatparticipants play in text, audio, video, or other media. An example ofsemantic role labeling may be identifying (1) the predicate Eat, (2)Tim, who plays the role of Agent, and (3) orange, which plays the roleof Patient, in the sentence “Tim ate the orange.” Question analysis mayinvolve performing natural language analysis on a question, includingsyntactic parsing, intent classification, semantic role labeling,relation extraction, information extraction, classifying the type ofquestion, and identifying what type of entity is being requested. Ruleextraction and discovery may involve extracting general inference rulesin text, audio, video, or other media. An example of rule extraction maybe extracting the rule that “When a person turns on a light, the lightwill light up” from “Matt turned on the light, but it didn't light up.”Story understanding may involve taking a story and identifying storyelements including (1) events, processes, and states, (2) goals, plans,intentions, needs, emotions, and moods of the speaker and characters inthe story, (3) situations and scripts, and (4) themes, morals, and thepoint of the story.

In some cases, NLP device 124 may perform natural language generation inresponse to receiving a command. According to some embodiments, NLPdevice 124 may perform natural language generation by utilizing one ormore of the following artificial intelligence techniques: contentdetermination, discourse structuring, referring expression generation,lexicalization, linguistic realization, explanation generation. Thecontent determination may involve deciding what content to present tothe customer out of all the content that might be relevant. Discoursestructuring may involve determining the order and level of detail inwhich content is expressed. Referring expression generation may involvegenerating expressions that refer to entities previously mentioned in adialogue. Lexicalization may involve deciding what words and phrases touse to express a concept. The linguistic realization may involvedetermining what linguistic structures, such as grammaticalconstructions, to use to express an idea. Explanation generation mayinvolve generating a humanly-understandable, transparent explanation ofa conclusion, chain of reasoning, or result of a machine learning model.In the exemplary embodiment shown in FIG. 3 , the NLP device 124 maydetermine the meaning of the incoming customer dialogue message andconverts it to a form that may be processed by the dialogue managementdevice 120. Accordingly, the second event generated by the NLP device124 may represent a determined meaning of the incoming customer dialoguemessage and the NLP device 124 may send the second event to the eventqueue 260.

At blocks 312 and 450, the dialogue management device 120 may receivethe second event from the event queue 260 in response to detecting it asdescribed above with respect to dialogue management device's 120 receiptof the first event. In some embodiments, dialogue management device 120may also update the customer context at this point by receiving updatedcustomer information from, for example, database 118. At blocks 314 and460, the dialogue management device 120 may, in response to processingthe second event, generate a second command to be placed in a commandqueue 270. According to some embodiments, dialogue management device 120may generate the second command based on the processed event, thecustomer context, and using one or more of a rules-based platform 290and a trained machine learning model 295 as described above. In theexemplary embodiment shown in FIG. 3 , the second event may represent acustomer's request to know, for example, their account balance. Based onthe customer context, rules-based platform 290 and/or trained machinelearning model 295, dialogue management device 120 may decide, forexample, using predictive analytics that it has enough information tocreate a second event that represents instructions to an API associatedwith the API server 122 to look up the customer's account balance.However, in some embodiments, dialogue management device 120 may decidethat, for example, it is too uncertain as to which account the customeris seeking information about and may instead create a second event thatrepresents instructions to communication interface 301 to send a messageto user device 102 requesting more information. Accordingly, based onthe customer context, rules-based platform 290, and trained machinelearning model 295, dialogue management device 120 may change or adaptits responses to a given request over time.

At blocks 314 and 460, the dialogue management device 120 may, inresponse to processing the second event, generate a second command to beplaced in command queue 270. According to some embodiments, dialoguemanagement device 120 may generate the second command based on theprocessed event, the customer context, and using one or more ofrules-based platform 290 and trained machine learning model 295 in afashion similar to the generation of the first command described above.According to some embodiments, the second command may represent acommand to API server 122 to retrieve customer information, such as, forexample, the account balance information.

In some embodiments, at blocks 316, 318, and 470, API server 122 mayreceive the second command from the command queue 270, execute thecommand, and generate a third event to be placed in event queue 260.According to some embodiments, the API server 122 may continuously orintermittently monitor the command queue 270 to detect new commands andupon detecting a new command, may receive the command from the commandqueue 270. Upon receiving a command, API server 122 may perform variousfunctions depending on the nature of the command. For example, in somecases, API server 122 call up an API stored locally or remotely onanother device, to retrieve customer data (e.g., retrieve an accountbalance), perform an account action (e.g., make a payment on a customeraccount), authenticate a customer (e.g., verify customer credentials),or execute an opt-in/opt-out command (e.g., change account to opt-in topaperless notifications). Accordingly, in some embodiments, the thirdevent may represent, for example, a retrieved account balance, anacknowledgment of the performance of an account action, anacknowledgment of the execution of an opt-in/opt-out command, orverification or denial of a customer's credentials.

At blocks 320 and 480, the dialogue management device 120 may receivethe third event from the event queue 260 in response to detecting it asdescribed above. In some embodiments, dialogue management device 120 mayalso update the customer context at this point by receiving updatedcustomer information from, for example, database 118.

At blocks 322 and 490, the dialogue management device 120 may, inresponse to processing the third event, generate a third command to beplaced in command queue 270. According to some embodiments, dialoguemanagement device 120 may generate the third command based on theprocessed third event, the customer context, and using one or more ofrules-based platform 290 and trained machine learning model 295 in afashion similar to the generation of the first command described above.In some embodiments, dialogue management device 120 may also generate aresponse dialogue message in response to processing an event, such asthe third event. In some embodiments, dialogue management device 120 mayreceive a response dialogue message as an event produced by NLP device124. According to some embodiments, the third command may represent acommand or instruction to communication interface 301 to transmit theresponse dialogue message to, for example, user device 102.

At blocks 324 and 326, the communication interface 301 may receive andexecute the third command, which may cause the communication interface301 to transmit (e.g., via SMS) the response dialogue message to userdevice 102. In some embodiments, communication interface 301 maycontinuously or intermittently monitor command queue 270 for newcommands and may receive the third command in response to detecting thethird command in command queue 270. According to some embodiments,communication interface 301 may be a standalone device having some orall of the elements of dialogue management device 120 as shown in FIG. 2. In some embodiments, communication interface 301 may be integratedinto dialogue management device 120 (e.g., as I/O device 220). In someembodiments, communication interface 301 may be integrated into anotherdevice, such as, for example, web server 110, call center server 112,the transaction server 114, the API server 122, or NLP server 124.

As shown in the exemplary embodiments in FIGS. 3 and 4 , a system (e.g.,system 100) for automating natural language dialogue with a customer mayutilize the structure provided by the event queue 260, dialoguemanagement device 120, command queue 270, API server 122, NLP server124, and communication interface 301 to adaptively respond to customermessages to leverage artificial intelligence in the machine learningmodels and natural language processing device to adaptively respond tocustomer communications using natural language. Further, the use of arepeatedly updating customer context provides the system 100 with theability to customize responses to individual customers and adapt theresponses over time. The use of artificial intelligence andmachine-learning by the NLP device 124, and a repeatedly updatingcustomer context maintained by the dialogue management device 120, thesystem enables the non-deterministic conversational responses tocustomer utterances (i.e., customer dialogue messages) that are adaptiveand customized. Further, according to some embodiments, the system 100may consumption of events and creation of commands by the dialoguemanagement device 120 may occur asynchronously. Further, while FIG. 3and the related description appear to show a particular single cycle ofevents, it should be appreciated that multiple different cycles ofevents may be processed in parallel by the dialogue management device120.

In some embodiments, the trained machine learning model 295 may includea people model that serves to estimate a customer's mindset per usecase, over time. For example, the people model may estimate how stressedout a customer is and determine, for example, how fast they want toconduct a transaction or interaction. The trained machine learning model295 may include a relevance measure that may quantitatively assess howrelevant a particular conversation with a customer is based on thepercent of task completion and rate of return conversations. The trainedmachine learning model 295 may include an affect recognitionfunctionality that seeks to recognize a customer's emotions based onfacial expressions, audio speech signals, images, gestures, bloodpressure, heart rate, or other such customer data that may be collectedby a user device 102 and transmitted to the system 100. In someembodiments, the trained machine learning model 295 may include paymentand financial planning features that model risk factors, savings, andspending patterns over time. In some embodiments, the trained machinelearning module 295 may include observations of the accuracy andeffectiveness of the automated natural language interactions by trackingbusiness metrics over time, such as for example, a reduction in callcenter volume over a period of time. In some embodiments, the trainedmachine learning module 295 may enable the execution ofhypothesis-driven micro-experiments that enable the system to test amodel hypothesis on a small population of users to validate whether thehypotheses are valid or not.

In some embodiments, due to system architecture that allows API server122, NLP device 124, communication interface 301 to operateindependently from one another by separately pulling commands from thecommand queue 270, the system provides the advantage of asynchronousoperation of the system. Accordingly, the entire system is stateless andthere are no side effects to calling a particular function.

FIG. 5 shows a flowchart of an exemplary method 500 for providingautomated natural language dialogue. Method 500 may be performed bydialogue management device 120 using processor 210 to execute memory230. In some embodiments, steps of method 500 may be delegated to otherelements in system 100, such as user device 102, web server 110, callcenter server 112, the transaction server 114, the API server 122, ornatural language processing device 124. Following method 500, the systemmay generate a response dialogue message that may be transmitted fordisplay at, for example, user device 102.

In block 510, system 100 may receive a first event to be placed in anevent queue. In some embodiments, a first event may be received from,for example, a user device as described above with respect to FIG. 4 .In some embodiments, a first event may be received from API server 122,NLP device 124, communication interface 301, or any other such device orcomponent capable of generating events. According to some embodiments,an event may represent the occurrence of some action, such as thereceipt of a message, receipt of a request, retrieval of customerinformation, acknowledgement of a change to a customer's account,verification or denial of a customer's credentials, or any other suchinformation that may be used to maintain and administer customeraccounts. In some embodiments, the first event may include datarepresentative of an incoming dialogue message.

In block 520, in response to detecting an event in the event queue, theevent may be received at the dialogue management device 120 from theevent queue 260. As described above with respect to FIG. 4 , in someembodiments, the dialogue management device 120 may include arules-based platform, a trained machine learning model, and a customercontext. According to some embodiments, the customer context may bederived from customer information associated with a particular customerstored in a database, such as for example, database 118. In someembodiments, the customer information may include one or more accounttypes, account statuses, transaction history, conversation history,people models, an estimate of customer sentiment, customer goals, andcustomer social media information.

In block 530, the dialogue management device 120 may, in response toprocessing the first event, generate a first command to be placed incommand queue 270. According to some embodiments and as described abovewith respect to FIG. 4 , dialogue management device 120 may generate acommand based on the processed event, the customer context, and using atrained machine learning model 295. According to some embodiments, whendialogue management device 120 generates a command, such as a firstcommand, it may determine an entity that will execute the command, suchas, for example, API server 122, NLP device 124, communication interface301, or some other device or component, such that only the determinedtype of entity may pull the command from command queue 270. In someembodiments, the first command may be an instruction to NLP device 124to determine the meaning of an incoming customer dialogue message. Insome embodiments, the first command may be a command to retrievecustomer data, a command to perform an account action, a command toauthenticate a customer, or an opt-in/opt-out command.

In block 540, the NLP device 124 or the API server 122 may receive thefirst command from the command queue 270, execute the command, andgenerate a second event to be placed in event queue 260 in a fashionsimilar to the examples described above with respect to FIG. 4 .

In block 550, in response to detecting the second event in event queue260, the second event may be received at the dialogue management device120 from event queue 260. In some embodiments, as described previously,the dialogue management device 120 may also generate or receive anupdated customer context in response to receiving the second event fromthe event queue 260.

In block 560, the dialogue management device 120 may, in response toprocessing the second event, generate a second command to be placed incommand queue 270 and a response dialogue message. According to someembodiments, dialogue management device 120 may generate the secondcommand and the response dialogue message based on the processed secondevent, the customer context, and using one or more of rules-basedplatform 290 and trained machine learning model 295 in a fashion similarto the generation of the first command described above. According tosome embodiments, the second command may represent a command orinstruction to communication interface 301 to transmit the responsedialogue message to, for example, user device 102.

According to some embodiments of method 500, the customer context may beupdated each time dialogue management device 120 receives an event fromthe event queue 260. For example, the customer context may be updated byreceiving updated customer information from a database, such as adatabase 118. In some embodiments, the database storing the customerinformation (e.g., database 118) may be updated to store new informationregarding customer interactions. For example, according to someembodiments, method 500 may further include the step of outputting arecord of a customer interaction relating to a command to a databasestoring the customer information, after the command is generated bydialogue management device 120.

According to embodiments of the present disclosure, NLP device 124 maybe capable of determining the meaning of an incoming customer dialoguemessage by utilizing one or more artificial intelligence techniques,including intent classification, named entity recognition, sentimentanalysis, relation extraction, semantic role labeling, questionanalysis, rule extraction, and discovery, and story understanding, asdescribed previously above. Further, in some embodiments, the NLP device124 may be capable of performing natural language generation byutilizing one or more artificial intelligence techniques, such ascontent determination, discourse structuring, referring expressiongeneration, lexicalization, linguistic realization, explanationgeneration, as described previously above.

As used in this application, the terms “component,” “module,” “system,”“server,” “processor,” “memory,” and the like are intended to includeone or more computer-related units, such as but not limited to hardware,firmware, a combination of hardware and software, software, or softwarein execution. For example, a component may be but is not limited tobeing, a process running on a processor, an object, an executable, athread of execution, a program, and/or a computer. By way ofillustration, both an application running on a computing device and thecomputing device can be a component. One or more components can residewithin a process and/or thread of execution and a component may belocalized on one computer and/or distributed between two or morecomputers. In addition, these components can execute from variouscomputer readable media having various data structures stored thereon.The components may communicate by way of local and/or remote processessuch as in accordance with a signal having one or more data packets,such as data from one component interacting with another component in alocal system, distributed system, and/or across a network such as theInternet with other systems by way of the signal.

Certain embodiments and implementations of the disclosed technology aredescribed above with reference to block and flow diagrams of systems andmethods and/or computer program products according to exampleembodiments or implementations of the disclosed technology. It will beunderstood that one or more blocks of the block diagrams and flowdiagrams, and combinations of blocks in the block diagrams and flowdiagrams, respectively, can be implemented by computer-executableprogram instructions. Likewise, some blocks of the block diagrams andflow diagrams may not necessarily need to be performed in the orderpresented, may be repeated, or may not necessarily need to be performedat all, according to some embodiments or implementations of thedisclosed technology.

These computer-executable program instructions may be loaded onto ageneral-purpose computer, a special-purpose computer, a processor, orother programmable data processing apparatus to produce a particularmachine, such that the instructions that execute on the computer,processor, or other programmable data processing apparatus create meansfor implementing one or more functions specified in the flow diagramblock or blocks. These computer program instructions may also be storedin a computer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meansthat implement one or more functions specified in the flow diagram blockor blocks.

As an example, embodiments or implementations of the disclosedtechnology may provide for a computer program product, including acomputer-usable medium having a computer-readable program code orprogram instructions embodied therein, said computer-readable programcode adapted to be executed to implement one or more functions specifiedin the flow diagram block or blocks. Likewise, the computer programinstructions may be loaded onto a computer or other programmable dataprocessing apparatus to cause a series of operational elements or stepsto be performed on the computer or other programmable apparatus toproduce a computer-implemented process such that the instructions thatexecute on the computer or other programmable apparatus provide elementsor steps for implementing the functions specified in the flow diagramblock or blocks.

Accordingly, blocks of the block diagrams and flow diagrams supportcombinations of means for performing the specified functions,combinations of elements or steps for performing the specifiedfunctions, and program instruction means for performing the specifiedfunctions. It will also be understood that each block of the blockdiagrams and flow diagrams, and combinations of blocks in the blockdiagrams and flow diagrams, can be implemented by special-purpose,hardware-based computer systems that perform the specified functions,elements or steps, or combinations of special-purpose hardware andcomputer instructions.

Certain implementations of the disclosed technology are described abovewith reference to user devices may include mobile computing devices.Those skilled in the art recognize that there are several categories ofmobile devices, generally known as portable computing devices that canrun on batteries but are not usually classified as laptops. For example,mobile devices can include but are not limited to portable computers,tablet PCs, internet tablets, PDAs, ultra-mobile PCs (UMPCs), wearabledevices, and smart phones. Additionally, implementations of thedisclosed technology can be utilized with internet of things (IoT)devices, smart televisions and media devices, appliances, automobiles,toys, and voice command devices, along with peripherals that interfacewith these devices.

In this description, numerous specific details have been set forth. Itis to be understood, however, that implementations of the disclosedtechnology may be practiced without these specific details. In otherinstances, well-known methods, structures, and techniques have not beenshown in detail in order not to obscure an understanding of thisdescription. References to “one embodiment,” “an embodiment,” “someembodiments,” “example embodiment,” “various embodiments,” “oneimplementation,” “an implementation,” “example implementation,” “variousimplementations,” “some implementations,” etc., indicate that theimplementation(s) of the disclosed technology so described may include aparticular feature, structure, or characteristic, but not everyimplementation necessarily includes the particular feature, structure,or characteristic. Further, repeated use of the phrase “in oneimplementation” does not necessarily refer to the same implementation,although it may.

Throughout the specification and the claims, the following terms take atleast the meanings explicitly associated herein, unless the contextclearly dictates otherwise. The term “connected” means that onefunction, feature, structure, or characteristic is directly joined to orin communication with another function, feature, structure, orcharacteristic. The term “coupled” means that one function, feature,structure, or characteristic is directly or indirectly joined to or incommunication with another function, feature, structure, orcharacteristic. The term “or” is intended to mean an inclusive “or.”Further, the terms “a,” “an,” and “the” are intended to mean one or moreunless specified otherwise or clear from the context to be directed to asingular form. By “comprising” or “containing” or “including” is meantthat at least the named element, or method step is present in article ormethod, but does not exclude the presence of other elements or methodsteps, even if the other such elements or method steps have the samefunction as what is named.

While certain embodiments of this disclosure have been described inconnection with what is presently considered to be the most practicaland various embodiments, it is to be understood that this disclosure isnot to be limited to the disclosed embodiments, but on the contrary, isintended to cover various modifications and equivalent arrangementsincluded within the scope of the appended claims. Although specificterms are employed herein, they are used in a generic and descriptivesense only and not for purposes of limitation.

This written description uses examples to disclose certain embodimentsof the technology and also to enable any person skilled in the art topractice certain embodiments of this technology, including making andusing any apparatuses or systems and performing any incorporatedmethods. The patentable scope of certain embodiments of the technologyis defined in the claims and may include other examples that occur tothose skilled in the art. Such other examples are intended to be withinthe scope of the claims if they have structural elements that do notdiffer from the literal language of the claims, or if they includeequivalent structural elements with insubstantial differences from theliteral language of the claims.

Exemplary Use Cases

The following exemplary use case describes one example of a typical userflow pattern. It is intended solely for explanatory purposes and not inlimitation. A customer may have a question or request to make of anentity related to an organization (e.g., organization 108), such as, forexample, asking about an account balance or requesting to make apayment. The customer may send a text message (e.g., via user device102) including the statement “Hello, can you please tell me my accountbalance?” to a number associated with the organization, which may bereceived by the organization (e.g., via web server 110). The system maythen process the message to understand its meaning (e.g., via NLP server124) and make a determination about how to respond (e.g., via dialoguemanagement device 120). In the process of making the determination abouthow to respond, the system (e.g., via dialogue management device 120)may consider the customer context of the user. For example, the systemmay analyze all of the currently known data about the customer, such asthe customer's account information, all of the previous interactionswith the customer, the customer's goals, the customer's social mediapresence, and an estimation of the customer's emotional state to make adetermination about how to respond. In doing so, the system (e.g., viadialogue management device 120) may decide, for example, that based onprevious requests, the customer is requesting information about achecking account, and therefore may decide to respond (e.g., viacommunication interface 301) with the customer's checking accountinformation. In another instance, the system (e.g., via dialoguemanagement device 120) may decide that it does not have enoughinformation to determine which account the customer is referring to andmay send a message to the customer requesting more information. Further,the system (e.g., via NLP device 124) may customize the form of theresponse to the customer based on observations about the customer'sspeech patterns.

Another use case involves the system (e.g., via dialogue managementdevice 120) proactively providing a customer with unrequestedinformation based on a predictive analysis of the customer's needs. Suchpredictive analysis can be conducted (e.g., via dialogue managementdevice 120) using machine learning and modeling in conjunction withknowledge of the customer context. For example, a customer may send thesystem a message requesting a change in automatic bill payments inaddition to making the requested change (e.g., via API server 122) thesystem may decide to send a message to the customer to remind them thatthey have a bill coming due soon, despite the fact that the customer didnot request that information. In this way, the system can take proactivesteps to meet a customer's needs.

Certain implementations of the disclosed technology are described abovewith reference to block and flow diagrams of systems and methods and/orcomputer program products according to example implementations of thedisclosed technology. It will be understood that one or more blocks ofthe block diagrams and flow diagrams, and combinations of blocks in theblock diagrams and flow diagrams, respectively, can be implemented bycomputer-executable program instructions. Likewise, some blocks of theblock diagrams and flow diagrams may not necessarily need to beperformed in the order presented, may be repeated, or may notnecessarily need to be performed at all, according to someimplementations of the disclosed technology.

These computer-executable program instructions may be loaded onto ageneral-purpose computer, a special-purpose computer, a processor, orother programmable data processing apparatus to produce a particularmachine, such that the instructions that execute on the computer,processor, or other programmable data processing apparatus create meansfor implementing one or more functions specified in the flow diagramblock or blocks. These computer program instructions may also be storedin a computer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meansthat implement one or more functions specified in the flow diagram blockor blocks. As an example, implementations of the disclosed technologymay provide for a computer program product, including a computer-usablemedium having a computer-readable program code or program instructionsembodied therein, said computer-readable program code adapted to beexecuted to implement one or more functions specified in the flowdiagram block or blocks. Likewise, the computer program instructions maybe loaded onto a computer or other programmable data processingapparatus to cause a series of operational elements or steps to beperformed on the computer or other programmable apparatus to produce acomputer-implemented process such that the instructions that execute onthe computer or other programmable apparatus provide elements or stepsfor implementing the functions specified in the flow diagram block orblocks.

As used herein, unless otherwise specified the use of the ordinaladjectives “first,” “second,” “third,” etc., to describe a commonobject, merely indicate that different instances of like objects arebeing referred to, and are not intended to imply that the objects sodescribed must be in a given sequence, either temporally, spatially, inranking, or in any other manner.

We claim:
 1. A system for automating natural language dialogue with acustomer, comprising: one or more processors; and memory incommunication with the one or more processors and storing instructionsthat, when executed by the one or more processors, are configured tocause the system to: responsive to receiving an incoming customerdialogue message via an automated dialogue interaction channel,generate, based on-data derived from customer interaction historyinformation, by a dialogue management device, a command to a naturallanguage processing device to determine a meaning of the incomingcustomer dialogue message based on a customer context; responsive to anexecution of the command by the natural language processing device,retrieving customer data; and responsive to processing the customerdata, generate, by the dialogue management device, a response dialoguemessage based at least in part on a predictive analysis of one or moredetermined needs of the customer.
 2. The system of claim 1, wherein theresponse dialog message comprises unrequested information basedon-retrieved customer data as processed by the dialog management device.3. The system of claim 1 wherein the incoming customer dialogue messagecomprises an indication that the incoming customer dialogue message wasreceived via one of the following types of channels: SMS, an instantmessaging program, a website-based chat program, a mobile application, avoice-to-text device, or an email.
 4. The system of claim 3 wherein thedialogue management device generates the response dialogue message basedon a type of channel the incoming customer dialogue message was receivedon.
 5. The system of claim 1 wherein the customer context is furtherderived from customer information associated with a particular customerstored in a database, the customer information comprising one or moreof: account types, account statuses, transaction history, people models,an estimate of customer sentiment, customer goals, and customer socialmedia information.
 6. The system of claim 5 wherein the customer contextis updated each time the dialogue management device receives an event.7. A system for automating natural language dialogue with a customer,comprising: one or more processors; and memory in communication with theone or more processors and storing instructions that, when executed bythe one or more processors, are configured to cause the system to:responsive to receiving an incoming customer dialogue message via anautomated dialogue interaction channel, determining a meaning of theincoming customer dialogue message based on data derived from customerinteraction history information; responsive to determining the meaningof the incoming customer dialogue message, generate, by a dialoguemanagement device, a response dialogue message based at least in part onretrieved customer data as processed by the dialog management device;and transmit the response dialogue message via a communication channelthat was used to deliver the incoming customer dialogue message.
 8. Thesystem of claim 7, wherein the dialog management device comprises one ormore of a natural language processing device, an API server, or acommunication interface.
 9. The system of claim 8, wherein the thenatural language processing device is utilized to determine the meaningof the incoming customer dialogue message.
 10. The system of claim 7,further comprising retrieving one or more of customer data, accountaction, customer authentication, or an opt-in/opt-out process responsiveto receiving an incoming customer dialogue message.
 11. The system ofclaim 7 wherein the customer interaction history information comprisesone or more of: account types, account statuses, transaction history,people models, an estimate of customer sentiment, customer goals, orcustomer social media information.
 12. The system of claim 11 whereinthe customer interaction history information is updated each time theautomated dialogue interaction channel receives an incoming customerdialogue message.
 13. The system of claim 12 wherein a customer contextis updated by receiving updated customer interaction historyinformation.
 14. The system of claim 12, further comprising outputting,from the dialogue management device, a record of a customer interactionrelated to the incoming customer dialogue message.
 15. The system ofclaim 8, wherein the dialogue management device determines the meaningof an incoming customer dialogue message by utilizing one or more of thefollowing artificial intelligence techniques: intent classification,named entity recognition, sentiment analysis, relation extraction,semantic role labeling, question analysis, rule extraction anddiscovery, or story understanding.
 16. The system of claim 8, wherein anatural language processing device generates the response dialoguemessage by utilizing one or more of the following artificialintelligence techniques: content determination, discourse structuring,referring expression generation, lexicalization, linguistic realization,or explanation generation.
 17. A method for providing automated naturallanguage dialogue with a customer, comprising: receiving via anautomated dialogue interaction channel, an incoming customer dialoguemessage; responsive to receiving the incoming customer dialogue message,determining a customer context comprising data derived from customerinteraction history information; determining a meaning of the incomingcustomer dialogue message based on the customer context; and generating,based on one or more of a trained machine learning model, the customercontext, or the customer interaction history information a responsedialogue message.
 18. The method of claim 17, wherein the responsedialog message comprises unrequested information based on a predictiveanalysis of one or more determined needs of the customer.
 19. The methodof claim 17, wherein a natural language processing device is used todetermine the meaning of the incoming customer dialogue message.
 20. Themethod of claim 17, wherein the customer context is further derived fromcustomer information, the customer information comprising one or moreof: account types, account statuses, transaction history, people models,an estimate of customer sentiment, customer goals, or customer socialmedia information.